package principale.presentation.gui.operazioniLogiche;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JOptionPane;

import principale.domain.Utente;
import principale.main.Main;
import principale.presentation.gui.interfacciaGraficaPura.LoginGUI;
import principale.presentation.gui.interfacciaGraficaPura.RubricaInterfacciaGrafica;

public class AscoltatoreButtonLogin implements ActionListener {
	private int id;
	private String[] datiLogin;
	private Vector<Utente> utenti;
	
	public static final int LOGIN=0;
	public static final int CHIUDI=1;

	public AscoltatoreButtonLogin(int id, String[] datiLogin) {
		this.id=id;
		this.datiLogin=datiLogin;
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		switch (id) {
		case LOGIN: login(); break;
		case CHIUDI: System.exit(0); break;
		}
	}

	@SuppressWarnings("unchecked")
	public void login() {
		Main.impostaTipoSalvataggio(LoginGUI.getTestoComboBox());
		Vector<String[]> tmpUtenti=Main.persistenza.carica("Utente");
		utenti=Main.stringArrayVectorToUtenteVector(tmpUtenti);
		if(utenti.isEmpty()) {
			if (datiLogin[0].equals("admin") && datiLogin[1].equals("admin")) {
				apriRubrica();
			}
			else {
				errore();
			}
		}
		else {
			boolean loginCorretto=false;
			for (int i=0;i<utenti.size();i++) {
				String username=utenti.get(i).getUsername();
				String password=utenti.get(i).getPassword();
				if (datiLogin[0].equals(username) && datiLogin[1].equals(password)) {
					loginCorretto=true;
				}
			}
			if(loginCorretto) {
				apriRubrica();
			}
			else {
				errore();
			}
		}
		
	}
	
	public void apriRubrica() {
		RubricaInterfacciaGrafica rubricaGrafica=new RubricaInterfacciaGrafica();
		rubricaGrafica.mostraGUI();
		LoginGUI.chiudiGUI();
	}
	
	public void errore() {
		String titolo="Errore";
		String testo="Username o Password errata.";
		JOptionPane.showMessageDialog(LoginGUI.getFrame(),testo,titolo,JOptionPane.WARNING_MESSAGE);
	}
}
